]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
search: add API to get a list of remote providers
authorCosimo Cecchi <cosimoc@gnome.org>
Tue, 6 Nov 2012 23:42:33 +0000 (18:42 -0500)
committerCosimo Cecchi <cosimoc@gnome.org>
Mon, 19 Nov 2012 16:45:21 +0000 (11:45 -0500)
This will be used to reload them in case the configuration changes.

https://bugzilla.gnome.org/show_bug.cgi?id=687491

js/ui/remoteSearch.js
js/ui/search.js

index 21e3d0f5c38aa064f55e65dd6007bfb98c0eafb7..16c09100b434c84a73d07dd1e4efc5f77eebc1f0 100644 (file)
@@ -114,7 +114,7 @@ const RemoteSearchProvider = new Lang.Class({
         this._proxy = new SearchProviderProxy(Gio.DBus.session,
             dbusName, dbusPath, Lang.bind(this, this._onProxyConstructed));
 
-        this.parent(appInfo.get_name().toUpperCase(), appInfo);
+        this.parent(appInfo.get_name().toUpperCase(), appInfo, true);
         this._cancellable = new Gio.Cancellable();
     },
 
index f106e9160af3929e6cda1ee4926475924bb9a49b..bc50cb0a41f0389439e646dbd8297554fa2a9d03 100644 (file)
@@ -74,10 +74,11 @@ const SearchResultDisplay = new Lang.Class({
 const SearchProvider = new Lang.Class({
     Name: 'SearchProvider',
 
-    _init: function(title, appInfo) {
+    _init: function(title, appInfo, isRemoteProvider) {
         this.title = title;
         this.appInfo = appInfo;
         this.searchSystem = null;
+        this.isRemoteProvider = !!isRemoteProvider;
     },
 
     /**
@@ -173,12 +174,16 @@ const SearchSystem = new Lang.Class({
 
     _init: function() {
         this._providers = [];
+        this._remoteProviders = [];
         this.reset();
     },
 
     registerProvider: function (provider) {
         provider.searchSystem = this;
         this._providers.push(provider);
+
+        if (provider.isRemoteProvider)
+            this._remoteProviders.push(provider);
     },
 
     unregisterProvider: function (provider) {
@@ -187,12 +192,20 @@ const SearchSystem = new Lang.Class({
             return;
         provider.searchSystem = null;
         this._providers.splice(index, 1);
+
+        let remoteIndex = this._remoteProviders.indexOf(provider);
+        if (remoteIndex != -1)
+            this._remoteProviders.splice(index, 1);
     },
 
     getProviders: function() {
         return this._providers;
     },
 
+    getRemoteProviders: function() {
+        return this._remoteProviders;
+    },
+
     getTerms: function() {
         return this._previousTerms;
     },